using System;
namespace DesertPaintLab
{
	public class PaintColor
	{
		byte red;
		byte green;
		byte blue;

		string name;
		
		public byte Red
		{
			get
			{
				return red;	
			}
			set
			{
				red = value;	
			}
		}

		public byte Blue
		{
			get
			{
				return blue;	
			}
			set
			{
				blue = value;	
			}
		}
		
		public byte Green
		{
			get
			{
				return green;	
			}
			set
			{
				green = value;	
			}
		}
		
		public string Name
		{
			get
			{
				return name;
			}
			set
			{
				name = value;	
			}
		}
		
		public PaintColor()
		{
			name = "Undefined";
			red = 0;
			green = 0;
			blue = 0;
		}
		
		public PaintColor(string name, string hexRed, string hexGreen, string hexBlue)
		{
			this.name = name;
			red = (byte)System.Int32.Parse(hexRed,
				System.Globalization.NumberStyles.AllowHexSpecifier);
            green = (byte)System.Int32.Parse(hexGreen,
			    System.Globalization.NumberStyles.AllowHexSpecifier);
         	blue = (byte)System.Int32.Parse(hexBlue,
			    System.Globalization.NumberStyles.AllowHexSpecifier);	
		}
		
		public PaintColor(byte red, byte green, byte blue)
		{
			name = "Undefined";
			this.red = red;
			this.green = green;
			this.blue = blue;			
		}
				
		public int GetDistanceSquared(PaintColor otherColor)
		{
			return (int)(Math.Pow(this.red - otherColor.red, 2) +
				Math.Pow(this.green - otherColor.green, 2) +
				Math.Pow(this.blue - otherColor.blue, 2));
		}
		
		public void Clear()
		{
			red = 0;
			green = 0;
			blue = 0;
		}
		
		public override string ToString()
		{
			return "[" + name + ", " + red + ", " + green + ", " + blue + "]";
		}
		
	}
}

